﻿//ILicenseService.cs
//Copyright (c) 2013 StockSharp LLC, all rights reserved.
//This code module is part of StockSharp library.
//This code is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
//See the file License.txt for the license details.
//More info on: http://stocksharp.com

namespace StockSharp.Algo.Licensing
{
	using System.ServiceModel;

	/// <summary>
	/// Интерфейс к сервису лицензий.
	/// </summary>
	[ServiceContract(Namespace = "http://stocksharp.com/services/licenseservice.svc")]
	public interface ILicenseService
	{
		/// <summary>
		/// Получить временную лицензию.
		/// </summary>
		/// <param name="hardwareId">Уникальная информация о компьютере.</param>
		/// <returns>Временная лицензия.</returns>
		[OperationContract]
		byte[] GetTrialLicense(string hardwareId);

		/// <summary>
		/// Отправить полную лицензию на зарегистрированный email.
		/// </summary>
		/// <param name="login">Логин.</param>
		/// <param name="password">Пароль.</param>
		/// <param name="hardwareId">Уникальная информация о компьютере.</param>
		/// <returns>Код результата выполнения.</returns>
		[OperationContract]
		byte SendFullLicense(string login, string password, string hardwareId);

		/// <summary>
		/// Получить полную лицензию.
		/// </summary>
		/// <param name="login">Логин.</param>
		/// <param name="password">Пароль.</param>
		/// <param name="hardwareId">Уникальная информация о компьютере.</param>
		/// <returns>Полная лицензия.</returns>
		[OperationContract]
		byte[] GetFullLicense(string login, string password, string hardwareId);

		/// <summary>
		/// Подписать исполняемый файл.
		/// </summary>
		/// <param name="login">Логин.</param>
		/// <param name="password">Пароль.</param>
		/// <param name="fileBody">Файл.</param>
		/// <returns>Файл с цифровой подписью.</returns>
		[OperationContract]
		byte[] SignExecutableFile(string login, string password, byte[] fileBody);
	}
}